﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Campeonato.Model;
using Campeonato.Common.BLL;

namespace Campeonato
{
    public partial class FrmRegistraResultado : Form
    {
        public Partida PartidaModificada { get; private set; }

        public FrmRegistraResultado(Partida _partida)
        {
            PartidaModificada = _partida;
            InitializeComponent();
            this.lblNomeJogador1.Text = PartidaModificada.NomeJogador1;
            this.lblNomeJogador2.Text = PartidaModificada.NomeJogador2;
            this.dtpDataPartida.Value = PartidaModificada.Data.Date;
            
            if (PartidaModificada.GolsJogador1.HasValue)
            {
                this.tbxPlacarJogador1.Text = PartidaModificada.GolsJogador1.Value.ToString();
            }

            if (PartidaModificada.GolsJogador2.HasValue)
            {
                this.tbxPlacarJogador2.Text = PartidaModificada.GolsJogador2.Value.ToString();
            }
        }

        private void btnRegistrarCartoesJogador1_Click(object sender, EventArgs e)
        {
            FrmRegistraDadosJogadorVirtual frmJogVit = 
                new FrmRegistraDadosJogadorVirtual(PartidaModificada.Jogador1, PartidaModificada);
            frmJogVit.ShowDialog();
        }

        private void btnRegistrarCartoesJogador2_Click(object sender, EventArgs e)
        {
            FrmRegistraDadosJogadorVirtual frmJogVit =
                            new FrmRegistraDadosJogadorVirtual(PartidaModificada.Jogador2, PartidaModificada);
            frmJogVit.ShowDialog();
        }

        private void btnSalvar_Click(object sender, EventArgs e)
        {
            int placarJogador1 = -1;
            int placarJogador2 = -1;

            if (!string.IsNullOrEmpty(this.tbxPlacarJogador1.Text.Trim()) && 
                !string.IsNullOrEmpty(this.tbxPlacarJogador2.Text.Trim()) &&
                int.TryParse(this.tbxPlacarJogador1.Text, out placarJogador1) &&
                int.TryParse(this.tbxPlacarJogador2.Text, out placarJogador2) &&
                placarJogador1 > -1 &&
                placarJogador2 > -1)
            {
                PartidaModificada.GolsJogador1 = placarJogador1;
                PartidaModificada.GolsJogador2 = placarJogador2;                
            }

            PartidaModificada.Data = this.dtpDataPartida.Value.Date;
            this.DialogResult = System.Windows.Forms.DialogResult.OK;
            this.Close();            
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            this.DialogResult = System.Windows.Forms.DialogResult.Cancel;
            this.Close();
        }

        private void btnSuspensoesJ1_Click(object sender, EventArgs e)
        {
            this.showGridJogadoresVirtuais(
                JogadorBLL.BuscarJogadoresVirtuais(PartidaModificada.Jogador1));
        }

        private void btnSuspensoesJ2_Click(object sender, EventArgs e)
        {
            this.showGridJogadoresVirtuais(
                JogadorBLL.BuscarJogadoresVirtuais(PartidaModificada.Jogador2));
        }

        private void showGridJogadoresVirtuais(IList<JogadorVirtual> _lstJogVirtuais)
        {
            FrmJogadoresSuspensos frmJogSusp = new FrmJogadoresSuspensos(_lstJogVirtuais);
            frmJogSusp.ShowDialog();
        }
    }
}
